公司有业务,需要将部分图片压缩到指定大小以内才能上传到某平台。所以就学习了网上 各位大佬的图片压缩代码。写了一个工具类,本着共同学习的态度,把代码贴一下,大家一起学习,一起进步。
工具类:
package com.yulong.app.util;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
import javax.imageio.ImageIO;
public class ImgTools {
/**
* 将图片压缩到指定大小以内
*
* @param srcImgData 源图片数据
* @param maxSize 目的图片大小
* @return 压缩后的图片数据
*/
public static byte[] compressUnderSize(byte[] srcImgData, long maxSize) {
double scale = 0.9;
byte[] imgData = Arrays.copyOf(srcImgData, srcImgData.length);
if (imgData.length > maxSize) {
do {
try {
imgData = compress(imgData, scale);
} catch (IOException e) {
throw new IllegalStateException("压缩图片过程中出错,请及
|